The present invention relates to measuring the delay to the processing of I/O operations caused by server virtualization, and in particular to measuring a time taken by a hypervisor to manage multiple instances of an operating system.
In computers operating with virtual machines, a hypervisor program divides physical resources, including a central processing unit (CPU), memory, storage, and I/O devices, of a real computer into separate virtual machines. For example, the hypervisor may allocate a predetermined time frame in which each virtual machine may access the CPU, and predetermined portions of memory or storage accessible by the respective virtual machines.
When an interrupt occurs targeting a particular virtual machine, the hypervisor receives the interrupt and determines to which virtual machine the interrupt is directed. If another virtual machine is utilizing system resources, such as the CPU, a delay is caused in processing the interrupt by the target virtual machine until the hypervisor controls the CPU to begin running the target virtual machine. The target virtual machine may then perform one or more functions based on receiving the interrupt.
Other delays resulting from hypervisor managing of multiple virtual machines include emulation overhead in which instructions and operations to access I/O devices are intercepted by the hypervisor and scheduling delays due to packet transmission and reception involving multiple hypervisor threads and virtual machines.